<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作用域</title>
</head>
<body>
    <script>
        /* 
            es5 的语法
            只有函数形成作用域
         */
        if(true) {
            var a = 1
        }
        function fn() {
            var a = 2
            console.log('a1 = ',a);
        }
        fn()
        console.log('a2 = ',a);

        /* 
            es6 的语法
            块作用域和函数作用域
            块作用域：{} 如果在{}中声明变量let了，
                     那么这个变量就是块作用域中的变量（局部作用域）
         */
        if (true) {
            let b = 1
        }
        function fn() {
            let b = 2
            console.log('b1 = ',b);
        }
        fn()
        // console.log('b2 = ',b); // 报错，因为此时全局没有b


    </script>

    <script>
        var a = 1
        console.log(window.a); // 1
        let b = 2
        console.log(window.b); // undefined
    </script>
</body>
</html>